package day0401;

import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class JiamiString13 {
    /**
     * 13 字符串加密
     * 题目描述：给出原文字符串str，通过对字符串的每个字母进行改变来实现加密，加密方式是在每一个字母str[i]偏移特定数组元素a[i]的量。
     * 数组a的前三位已经赋值：a[0]=1,a[1]=2,a[2]=4,当i>=3时，数组元素a[i]=a[i-1]+a[i-2]+a[i-3]。
     * 例如：原文abcde加密后bdgkr，其中偏移量分别是1，2，4，7，13。
     * 输入描述：第一行是整数n，表示n组测试数据。每组数据包含一行，原文str(只含有小写字母，长度大于0小于50)。
     * 输出描述：每组测试数据输出一行，表示密文
     * <p>
     * 输入
     * 1
     * xy
     * 输出
     * ya
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());
        while (n > 0) {
            String str = sc.nextLine();
            List<Integer> list = Stream.of(1, 2, 4).collect(Collectors.toList());
            if (str.length() == 1) {
                System.out.println(getChar(str.charAt(0), 1));
            }
            if (str.length() == 2) {
                System.out.println(getChar(str.charAt(0), 1) + "" + getChar(str.charAt(1), 2));
            }
            if (str.length() >= 3) {
                StringBuilder res3 = new StringBuilder(getChar(str.charAt(0), 1) + "" + getChar(str.charAt(1), 2) + "" + getChar(str.charAt(2), 4));
                for (int i = 3; i < str.length(); i++) {
                    list.add(list.get(i - 1) + list.get(i - 2) + list.get(i - 3));
                    res3.append(getChar(str.charAt(i), list.get(i)));
                }
                System.out.println(res3);
            }
            n--;
        }
    }

    private static char getChar(char ch1, int num) {
        return (ch1 + num) > 122 ? (char) (ch1 + num - 122 + 96) : (char) (ch1 + num);
    }
}
